package com.pmpd.activity.service.api;

import com.pmpd.activity.po.ActivityUser;
import java.util.List;

/**
 * @Author liuying
 * @Description 活动用户关联服务层接口
 * @Date 14:53 2018/6/7
 */
public interface ApiActivityUserService {
    /**
     * @Author liuying
     * @param activityId 活动id
     * @param type 活动类型
     * @Description 获取某类型活动参与人数
     * @Date 20:24 2018/6/7
     */
    int countByActivityAndType(long activityId, int type);

    /**
     * @Author liuying
     * @param activityId 活动id
     * @param type 活动类型
     * @param userId 用户id
     * @param projectId app编号
     * @param seconds 时间戳
     * @return 插入数据
     * @Description 用户加入活动
     * @Date 21:15 2018/6/7
     */
    ActivityUser addActivity(long activityId, long userId, int type, String projectId, long seconds);

    /**
     * @Author liuying
     * @param activityId 活动id
     * @param userId 用户id
     * @Description 根据用户id和活动id得到对象
     * @Date 14:57 2018/6/8
     */
    ActivityUser ActivityUserByUserId(long activityId, long userId);

    /**
     * @Author liuying
     * @param activityId 活动id
     * @param userId 用户id
     * @Description 判断用户是否为获奖用户
     * @Date 16:11 2018/6/8
     */
    int isWinning(long activityId, long userId);

    /**
     * @Author liuying
     * @param activityId 活动id
     * @param awardDay 参与第几天的抽奖
     * @Description 获取所有中奖人id
     * @Date 16:53 2018/6/8
     */
    List<Long> getAwardUser(long activityId, int awardDay);

    /**
     * @Author liuying
     * @param activityId 活动id
     * @param userId 用户id
     * @param finishDays 完成天数
     * @Description 更新用户任务完成天数
     * @Date 15:38 2018/6/12
     */
    ActivityUser updateFinishDays(long userId, long activityId, int finishDays);

    /**
     * @Author liuying
     * @param activityId 活动id
     * @Description 获取所有参加活动的用户id
     * @Date 21:05 2018/6/12
     */
    List<ActivityUser> selectByActivityId(long activityId);

    /**
     * @Author liuying
     * @param users 需要更新的用户
     * @Description 批量更新活动用户完成天数数据
     * @Date 16:55 2018/6/14
     */
    boolean bulkUpdate(List<ActivityUser> users);

    /**
     * @Author liuying
     * @param activityId 活动id
     * @param userId 用户id
     * @Description 查询参加该活动的该用户
     * @Date 15:11 2018/6/15
     */
    List<ActivityUser> selectByActivityIdAndUserId(long activityId, long userId);

    /**
     * @Author liuying
     * @param activityId 活动id
     * @param userId 用户id
     * @param awardDay 参与抽奖的天数
     * @Description 更新中奖状态为参与抽奖
     * @Date 11:11 2018/6/21
     */
    ActivityUser updateWinningState(long activityId, long userId, int awardDay);
}
